The present exemplary embodiments disclosed herein relate generally to matrix factorization. They find particular application in conjunction with real-time recommendation systems, and will be described with particular reference thereto. However, it is to be appreciated that the present exemplary embodiments are also amenable to other like applications.
Matrix factorization is the decomposition of a matrix into a product of matrices. Hence, matrix factorization is also known as matrix decomposition. Matrix factorization is commonly used in real-time recommendation systems, which need to be fast, scalable, and accurate. Such recommendation systems train a model to predict the preferences of users using matrix factorization.
Supposing a user-by-item matrix a∈m×n (m users by n items), the matrix factorization problem for a typical recommendation systems is as follows.
                                          argmin                          U              ∈                              ℝ                                  m                  ×                  d                                                                          V            ⁢                                                  ∈                          ℝ                                                                                ⁢                                  n                  ×                  d                                                                    ⁢                  {                                                    ∑                                  i                  ,                                      j                    ∈                                          Ω                      A                                                                                  ⁢                                                (                                                            A                      ij                                        -                                                                  u                        i                        T                                            ⁢                                              v                        j                                                                              )                                2                                      +                          λ              ⁡                              (                                                                                                  U                                                              F                                    +                                                                                  V                                                              F                                                  )                                              }                                    (        1        )            The goal of the above optimization problem is to approximate A≈UVT, where U∈m×d and V∈n×d. This may also be interpreted as a low rank-d approximation in which a user ui and an item vj are mapped to a latent feature space d such that the interaction of the ith users with the jth product is uivjT.
To solve the optimization problem, a cyclic coordinate descent (CCD) based approach is typically used. A CCD based approach cyclically updates a single variable at a time while leaving the others fixed. Such approaches have two main stages: (i) using an update rule to solve each variable subproblem; and (ii) selecting the order in which the variables are updated. A commonly used CCD based approach to solving the optimization problem is the so called CCD++ approach.
In the past, recommendation systems have trained models based on only past user-item data (e.g., user i purchased an item j). However, more recently, some work has used other data in order to provide better recommendations to users.
The present application provides new and improved methods and systems for matrix factorization and real-time recommendation systems.